JBuilder 4

Release Notes

This document contains a subset of known problems, workarounds and tips for JBuilder 4.

Late-Breaking News

Windows Users: If you encounter problems debugging your applications using JBuilder 4, please do the following:
  1. Check the JavaSoft web site for updates and patches to the Windows version of JDK 1.3: http://www.javasoft.com/j2se/1.3/.
  2. Add the -classic option as the first VM parameter in your project (Project|Project Properties, Run tab, VM Parameters) when debugging.

Table of Contents

General
Installation
Enterprise JavaBeans (EJB)
Web Development
Team Development
Editor
Components
Debugger
Designer
Database and JDataStore
Wizards
Runtime
Help Viewer
OpenTools
Linux
Inprise Application Server
Samples
Performance
International
Documentation


General

Tips:

Using JBuilder 3.5 and JBuilder 4

Some of the changes in JBuilder 4 make it extremely inconvenient to share the ".jbuilder" directory with an installation of JBuilder 3.5. As a service to our customers, we put the settings for JBuilder 4 in new directory, .jbuilder4, and settings for JDataStore 4 in .jdatastore4.

Known problems:

What's new in JBuilder 4

See What's New in JBuilder 4 in the Quick Start for information about new features and functionality.

[ top ]


Installation

Tips:

For explicit install instructions, look at setup_<platform>.html. It is very important to follow those directions.

Linux

Possible Problem: System minimum configuration meets or exceeds specified requirements, but JBuilder runs slow.

Solution: The Linux kernel has problems with a few motherboard/BIOS not reporting total memory available. To check that all installed memory is being recognized, type the following at a shell prompt:

cat /proc/meminfo

the output will include a line looking like:

MemTotal: ######## kB 

where "########" should equal the amount of memory your computer has. If it doesn't, you'll need to explicitly tell the kernel by editing the file /etc/lilo.conf.

Details for doing this can be found at: http://www.redhat.com/support/docs/faqs/rhl_general_faq/FAQ-7.html

Uninstalling JBuilder

To uninstall JBuilder:
  1. Locate the directory where JBuilder was installed.
  2. Delete the JBuilder directory.
  3. Delete the .jbuilder4 directory:

Known problems:

[ top ]

Enterprise JavaBeans (EJB)

You must use version 4.1.1 or higher of the Inprise Application Server, or the Enterprise JavaBeans development features in JBuilder 4 will not function properly. Inprise Application Server 4.1.1 is the version installed with JBuilder Enterprise.

See the Enterprise JavaBeans Developer's Guide for a tutorial and additional information on developing and deploying EJBs using JBuilder 4.

Known problems:

[ top ]

Web Development

The JSWDK1.0 library is now obsolete; JBuilder now uses the Tomcat servlet engine. Because of the new web server integration, there is no need to declare a web server library, and there is no Tomcat library to replace JSWDK. If you have existing projects that use the JSWDK1.0 library, you should remove it from those projects as a required library.

Known problems:

[ top ]

Team Development

To take full advantage of CVS capabilities in JBuilder, it is recommended that you use CVS version 1.10.8 or later.

Known problems:

Using CVS with SSH

It is possible to use SSH to have a secure connection to a CVS server when using the Team Development features of JBuilder. SSH provides a way of connecting to a host machine using strong encryption, thus assuring that confidential data is kept...confidential.

JBuilder supports this option. You need to use SSH1 (SSH2 could work but has not been tested) and the connection has to be configured in such a way that SSH will not prompt for a password. This is extremely important. Failing to configure SSH to connect without a password will cause JBuilder to "freeze" until the SSH program is explictly terminated. (Please refer to the SSH documentation for more information.)

To test if your connection is configured correctly, before trying it in JBuilder, enter ssh followed by the name of the server you want to connect to. For example, if the server is called codecentral, enter:

ssh codecentral

If SSH connects to the server without prompting you for a password, you can use SSH in JBuilder.

After SSH is properly configured, you need to specify some parameters on the CVS configuration page. To do this:

  1. Choose Team|Configure Version Control.
  2. From the CVS configuration page, select "Ext" for the connection type.
  3. Enter the name of the server and your username on that server.
  4. For "Remote shell", enter ssh.

After these parameters have been specified, you can perform all the CVS operations in a secure enviroment that uses strong encryption for data transfer.

[ top ]


Editor

Known problems:

[ top ]

Components

Editing date values

To help prevent unexpected results when date values are edited, dbSwing and JBCL components convert the default pattern's two-digit year to a four-digit year. dbSwing's JdbTextField and JdbTable also substitute a four-digit year when a custom displayMask is used to control editing (but not when you specify an editMask, because then it controls editing). JdbTextField does this conversion when a date or timestamp is displayed; the other components wait until the date or timestamp is edited. The pattern used to parse edited values is not changed.

To understand the reason for this, you must be aware of Java's default behavior when parsing a date value using a pattern that specifies a two-digit year. If the date string contains a two-digit year, the year is assumed to fall in a window that runs from 80 years before the current date to 20 years in the future; otherwise (that is, the year is one, three, or four digits long), the year is taken just as it is. To see the implications of this rule, consider an example:

Forcing the full four-digit year to be displayed prevents this behavior. When entering a new value, you can still enter a two-digit year and let Java determine whether it's in the 20th or 21st century, or you can specify the century yourself by entering all four digits. One warning: always represent a year between 2000 and 2009 as a two-digit string with a leading zero. As the rule above states, a one-digit year is not treated as falling somewhere in the 20th or 21st century.

Known problems:

[ top ]

Debugger

Tips:

Debugging applets from within a browser (IE 5 or Netscape Navigator 4.72) using JDK 1.3

  1. Download and install the plugin for JDK 1.3 from the Sun site: http://java.sun.com/products/plugin/
  2. Download and install the HTML converter from the Sun site http://java.sun.com/products/plugin/1.3/features.html.
  3. Follow instructions to set the debug parameters for the Java Plugin for applets: http://java.sun.com/products/plugin/1.3/docs/debugging.html.
    Add -classic as the first parameter to use the Classic VM for debugging (if appropriate).
  4. Using JBuilder:
    1. Create a simple applet with an HTML file.
    2. Compile the project.
    3. Convert the HTML file using the HTML converter. Instructions to use the HTML converter can be found at: http://java.sun.com/products/plugin/1.3/docs/htmlconv.html.
    4. Set breakpoint in the applet file. In the project properties debug page, enable remote debugging and enter the following parameters:
      • If using dt_shmem and address javadebug, select transport dt_shmem and enter address 'javadebug'.
      • If using dt_socket, select transport dt_socket and enter the address you have provided in the control panel (default provided in JBuilder is 5000). For further information on remote debugging, see "Debugging distributed applications" in the Distributed Application Developer's Guide.
  5. Start up the browser (either Netscape or IE). Open the html file. Switch to JBuilder and start debugging your project. The debugger should start up successfully. Switch back to the browser and refresh the page. In JBuilder, the debugger should have stopped at the breakpoint in the applet.

Known problems:

[ top ]

Designer

Tips:

"Red Beans"

If you see one of your components as a red box with its class name at the top, JBuilder has not been able to create an instance of that component for the designer. This is called a "Red Bean". Some reasons you might see a Red Bean are:

Items (1) and (2) can be fixed by supplying a proper default constructor or subclassing that class in order to provide a default constructor. Item (3) is more complex. Whenever JBuilder needs to instantiate an object to be the 'this' object, it encounters a paradox. It cannot instantiate the object you are designing. To circumvent this problem, JBuilder always attempts to instantiate the superclass of the "this" object. If the superclass is abstract, it cannot be instantiated. Here is the solution:

In the file ".jbuilder4/user.properties," you will find a line that looks like:

designer;proxy.java.awt.Component=com.borland.jbuilder.designer.dt.ComponentProxy

This line says that whenever you are forced to instantiate com.sun.java.swing.JComponent (which is abstract), you will find an acceptable concrete proxy class for it in:

com.borland.jbuilder.dt.JComponentProxy

You may add your own proxy objects using this pattern. The proxy class does not need to do anything other than the following:

  1. Extend the abstract class in question.
  2. Be concrete (not be declared abstract itself).
  3. Be public (both the class and its constructor).

Known problems:

[ top ]

Database and JDataStore

Tips:

Application Deployment

Information on deploying the JDataStore JDBC server for remote access is described in "Deploying the JDataStore JDBC server" in the JDataStore Developer's Guide. Tips for reducing the deployed size of JDataStore client applications can be found in "Pruning deployed resources" in the JDataStore Developer's Guide.

Adding a JDBC driver to JBuilder

After installing your JDBC driver following the manufacturer's instructions, use the steps below to set it up for use with JBuilder.

Note: Drivers listed in red on the Drivers list (in the Connection Property dialog box, JDBC Explorer, or JDataStore Explorer) are not on the classpath. While you can select them, any connections or URLs you define using them will not work until they have been added to your classpath.

Creating the .library and .config files

There are three steps to adding a database driver to JBuilder: The first two steps can be accomplished in one dialog box:
  1. Open JBuilder and choose Tools|Enterprise Setup. Click the Database Drivers tab which displays .config files for all the currently known database drivers.
  2. Click Add to add a new driver, then New to first create a new library file for the driver. The library file is used to add the driver to the required libraries list for projects. Note: You can also create a new library under Tools|Configure Libraries, but since you would then have to use Enterprise Setup to derive the .config file, it is simpler to do it all here.
  3. Type a name and select a location for the new file in the Create New Library dialog box.
  4. Click Add, and browse to the location of the driver. You can select the directory containing the driver and all it's support files, or you can select just the archive file for the driver. Either will work. JBuilder will extract the information it needs.
  5. Click OK to close the file browser. This displays the new library at the bottom of the library list and selects it.
  6. Click OK. JBuilder creates a new .library file in the JBuilder /lib directory with the name you specified (for example, InterClient.library). It also returns you to the Database Drivers page which displays the name of the corresponding .config file in the list which will be derived from the library file (for example, InterClient.config).
  7. Click OK. This places the .config file in the JBuilder /lib/ext directory.
  8. Close and restart JBuilder so the changes to the database drivers will take effect, and the new driver will be put on the JBuilder classpath.

Important: If you make changes to the .library file after the .config file has been derived, you must re-generate the .config file using Enterprise Setup, then restart JBuilder.

Adding the JDBC driver to projects

Projects run from within JBuilder use only the classpath defined for that project. Therefore, to make sure the JDBC driver is available for all new projects that will need it, define the library and add it to your default list of required libraries. This is done from within JBuilder using the following steps:

  1. Start JBuilder and close any open projects.
  2. Choose Project|Default Project Properties.
  3. Select the Required Libraries tab on the Paths page, then click the Add button.
  4. Select the new JDBC driver from the library list and click OK.
  5. Click OK to close the Default Project Properties dialog box.
Note: You can also add the JDBC driver to an existing project. Just open the project, then choose Project|Properties and use the same process as above.

Now JBuilder and the new JDBC driver are set up to work together. The next step is to create or open a project that uses this driver, add a Database component to it, and set its connection property so it can use that driver to access the data. For an example of how to do this, see "Tutorial: Connecting to a database using InterClient" in the Database Application Developer's Guide.

Known problems:

[ top ]

Wizards

Known problems:

[ top ]

Runtime

Running JDK 1.2 Applets

In order to run an Applet on Solaris or Linux from within JBuilder, you must add the Open Tools SDK library to your project. Failing to add this library can lead to an exception about a "NoClassDefFoundError:AppletTestbed." This problem currently affects some of the applet samples, including the Primes Swing sample.

Running JDK 1.1.x Applets

The Project Properties|Run page for applets lets you specify whether to run your applet from the applet's main class or from the HTML file:

Known Problems:

[ top ]

Help Viewer

Known Problems:

[ top ]

Linux

Tips:

Printing on Linux and Solaris platforms

A workaround for people on Unix platforms who do not need to use AWT components in the designer and want to be able to select a printer that is different than lpr is to comment out the line in the JBuilder.config file that adds the LightWeight Toolkit to the boot path as shown:
# Put the Lightweight Toolkit on the boot path 
#addbootpath ../lib/lawt.jar 

Known Problems:

[ top ]

Inprise Application Server

Known Problems:

[ top ]

OpenTools

Known problems:

[ top ]

Samples

The OnlineStore sample requires the use of platform-specific InterBase database (.gdb) files in the 'OnlineStore/database' subdirectory. Database files are provided for the Windows, Solaris, and Linux platforms. Before running the OnlineStore sample, you will need to copy both of the platform-specific acmecb and cliffhanger databases to filenames with the normal .gdb file extension. For example, to run the sample on Windows, copy 'acmecb.gdb.windows' to 'acmecb.gdb' and 'cliffhanger.gdb.windows' to 'cliffhanger.gdb'.

The Samples.html file should be viewed in the JBuilder AppBrowser or from the link in the Welcome Project.

Known Problems:

[ top ]

Performance

These are some suggestions for improving local performance of JBuilder 4.

[ top ]

International

Installing to a Japanese NEC machine

[75607] If you are installing JBuilder to a Japanese NEC computer and the install program causes an operating system error message saying that "Drive C: is not ready... the drive door may be open...", then you should press the <Ignore> button in this dialog. Install will then complete normally. (The <Abort> button should also work.)

Japanese Fonts on Linux

[75704][75705] If you experience problems displaying Japanese fonts on Linux, you may need to update the file, <jdk1.3>/jre/lib/font.properties.ja. JavaSoft's web site has instructions on how to do this in Japanese: Directions to modify the font.properties file (in Japanese).

Solaris Platforms

Command Line Compiler

Other Known Problems:

[ top ]

Documentation

Check the JBuilder Technical Publication web site, http://www.borland.com/techpubs/jbuilder, for updates to the documentation.

All of the printed documentation is also available in PDF format on your JBuilder 4 product CD. Look in the pdf directory for the following files:

PDF File Printed Manual
database.pdf Database Application Developer's Guide
enterprise.pdf Enterprise Application Developer's Guide
  • Team Development using JBuilder
  • Web Application Developer's Guide
  • Distributed Application Developer's Guide
  • Enterprise JavaBeans Developer's Guide
java-jb.pdf Learning Java with JBuilder
  • Quick Start
  • Getting Started with Java
  • Tutorials
jdspg.pdf JDataStore Developer's Guide
pg.pdf Building Applications with JBuilder

If you downloaded your version of JBuilder 4, the PDF files are also available for download from the JBuilder Technical Publication web site, http://www.borland.com/techpubs/jbuilder.

Known Problems:

[ top ]


Apache Software Foundation conditions and disclaimer:

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear.
  4. The names "Apache" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org.
  5. Products derived from this software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of the Apache Software Foundation.
THIS SOFTWARE (Tomcat) IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

[ top ]